package com.mlizhi.modules.login;

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.mlizhi.base.MlzApplication;
import com.mlizhi.base.NetWorkManager;
import com.mlizhi.base.SecurityUtil;
import com.mlizhi.base.Session;
import com.mlizhi.kingdom.R;
import com.mlizhi.modules.spec.util.JsonUtil;
import com.mlizhi.utils.Constants;
import com.umeng.analytics.AnalyticsConfig;
import com.umeng.analytics.MobclickAgent;


/**
 * User: special
 * Date: 13-12-22
 * Time: 下午3:28
 * Mail: specialcyci@gmail.com
 */
public class ForgetPassword2Activity extends Activity {

    public static final int LOGIN_SUCCESS = 1;
    public static final int LOGIN_FAILURE = 2;
    private Context mContext;
    private RequestQueue mRequestQueue;
    private EditText validCodeEditText;
    private MlzApplication mlzApplication = null;
    private Session mSession;
    private TextView userPhoneTextView;

    private static final String TAG = ForgetPassword2Activity.class.getName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        mSession = Session.get(getApplicationContext());
        mlzApplication = (MlzApplication) getApplication();
        setContentView(R.layout.activity_login_forget_password2);
        /** 发送策略定义了用户由统计分析SDK产生的数据发送回友盟服务器的频率。 */
        MobclickAgent.updateOnlineConfig( mContext );
        /** 设置是否对日志信息进行加密, 默认false(不加密). */
        AnalyticsConfig.enableEncrypt(true);
        validCodeEditText = (EditText) findViewById(R.id.user_fpd_valid_code);
//        passwordEditText = (EditText) findViewById(R.id.user_info_password);
        userPhoneTextView = (TextView) findViewById(R.id.user_fpd_phone);
        userPhoneTextView.setText("+86 "+mlzApplication.getGlobalVariable(Constants.SMS_MOBILE_NUMBER));
        mlzApplication.addActivity(this);
    }


    /**
     * 退出当前页面
     *
     * @param view
     */
    public void validCodeBack2Main(View view) {
        switch (view.getId()){
            case R.id.valid_code_back:
                finish();
                break;

            case R.id.valid_code_submit_btn:
                checkCode();
//            	mlzApplication.removeActivities();
                break;
        }


    }

    @Override
	public void onResume() {
		super.onResume();
		MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用，不需要单独写)
	    MobclickAgent.onResume(this);          //统计时长
	}

	@Override
	public void onPause() {
		super.onPause();
		MobclickAgent.onPageEnd("SplashScreen"); // （仅有Activity的应用中SDK自动调用，不需要单独写）保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息 
		MobclickAgent.onPause(this);
	}
	

    @Override
    protected void onStop() {
        super.onStop();
//        mRequestQueue.cancelAll(TAG);

    }


    private  String codeInput = "";
    private void checkCode() {
        codeInput = validCodeEditText.getText().toString();
        boolean netUsable = NetWorkManager.getNewInstance().isNetworkConnected(mContext);
        if (netUsable) {
        	mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        	// Request a string response from the provided URL.
        	StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_RESET_PASSWORD_CHECK_CODE,
        			new Response.Listener<String>() {
        		@Override
        		public void onResponse(String response) {
        			String code = JsonUtil.getHeaderCode(response);
        			if(Constants.RESULT_JSON_HEADER_CODE_SUCCESS.equals(code)){
        				startActivity(new Intent(mContext,ResetPasswordActivity.class));
        			}else {
        				Toast.makeText(mContext,JsonUtil.getHeaderErrorInfo(response),Toast.LENGTH_SHORT).show();
        			}
        		}
        	}, new Response.ErrorListener() {
        		@Override
        		public void onErrorResponse(VolleyError error) {
        			Toast.makeText(mContext,error.getMessage(),Toast.LENGTH_SHORT).show();
        		}
        	}){
        		@Override
        		protected Map<String, String> getParams() throws AuthFailureError {
        			
        			String timestamp = SecurityUtil.getTimestamp();
        			Map<String, String>  params = new HashMap<String, String>();
        			params.put("mobile",  mlzApplication.getGlobalVariable(Constants.SMS_MOBILE_NUMBER));
        			params.put("sms",  codeInput);
        			params.put("companyId", Constants.COMPANY_ID);
        			params.put(Constants.URL_TIMESTAMP,timestamp );
        			params.put(Constants.URL_KEY,SecurityUtil.getMd5String(timestamp));
        			return params;
        		}
        	};
        	stringRequest.setTag(TAG);
        	mRequestQueue.add(stringRequest);
        	mRequestQueue.start();
        }else {
        	Toast.makeText(mContext,R.string.net_connected_failure,Toast.LENGTH_SHORT).show();
        }
    }


}
